<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    

<script>
// 使用 原型模式 创建对象
// （将对象的所有属性方法都添加到原型上）
// 先通过构造函数创建一个空对象，然后在原型对象上添加属性方法

function Human(){}
// 不同对象要区分的属性：
Human.prototype.name = '张三';
Human.prototype.sex = '男';
Human.prototype.girlFriend = '小薇';

// 不同对象应该共享的属性：
Human.prototype.type = '人类';
Human.prototype.say = function (){
    console.log( 'hi' );
};
// Human.prototype原型对象上的属性方法，被所有Human的实例对象共享
var obj1 = new Human();
var obj2 = new Human();
console.log( obj1.constructor );// Human
console.log( obj2.constructor );// Human
console.log( obj3.constructor );// Human
console.log( obj1.say === obj2.say );// true

// 问题4：
console.log( obj1.name );// '张三'
console.log( obj2.name );// '张三'
console.log( obj1.sex );// '男'
console.log( obj2.sex );// '男'


// 问题1：如果需要大批量创建对象，需要写大量重复的代码--已解决
// 问题2：无法区分对象的类型（分类：人类和狗类）--已解决
// 问题3：相同类型对象的相同方法，重复创建了（代码重复，占用更多内存）--已解决
// 问题4：无法区分不同对象的属性特征

</script>
</body>
</html>